#include <bits/stdc++.h>
using namespace std;
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
string fun(string a,int b)
{
    string res="";
    int len = a.length()-b;        //删除 b个，其实就是要填满剩下的 n-b个
    //我们用上面的方法一个一个填进去
    while(len!=0)    //len表示要填的长度，填满了退出
    {
        char max = 0;
        // 找到前 b个中的最大值
        for(int i=0;i<=b;i++)
        {
            if(max<a[i])
                max = a[i];
        }
        int index = a.find_first_of(max);

        b = b - index;    //更新 b 值
        res = res + max;    //string类型的res存储结果
        len--;    //填一个格子少一个
        // 将首位元素之前的删除，也就是更新原来的数字序列
        a = a.substr(index+1);
        //这是当半径为 0 表示没有再搜索下去的能力了，此时就把后面的元素直接加上
        if(b==0)
        {
            res = res+a;
            break;
        }
    }
    return res;
}
int main()
{
    string a;
    int b;
    while(cin >> a >> b)
    {
        cout << fun(a,b) << endl;
    }
    return 0;
}
//int main()
//{
//    string a;
//    int b;
//    cin>>a>>b;
//    string max_sub="0";
//    for(int i=0;i<a.length()-b+1;i++)
//    {
//        string a_c = a;
//        string temp = a.substr(i,b);
//        a_c.erase(i,b);
//        cout<<a_c<<endl;
////        cout<<"current:"<<a_c<<endl;
//        if(a_c>max_sub)
//            max_sub = a_c;
//    }
//    cout<<max_sub<<endl;
//}